{
  /**
   * 写完这题的时候 我对链表已经相对来说比较好理解了！！
   *
   * 这里先是我们自定义一个链表结构：Node 并顺便创建一个链表
   *
   *  创建一个索引 通过递归函数 找到最后一个node节点的前一个节点
   *  将最后一个节点的前一个节点的 next 指向为 null  我们就完成了删除链表中最后一个节点的任务
   *
   *
   *
   */

  class Node<T> {
    value: T;
    next: Node<T>;
    constructor(value: T, next?: Node<T>) {
      this.value = value;
      this.next = next;
    }
  }

  let node1 = new Node<String>('Jimmy');
  let node2 = new Node<String>('xuexue');
  let node3 = new Node<String>('Jack');
  node1.next = node2;
  node2.next = node3;
  let first = new Node(null, node1);

  // 创建一个索引
  let oldIndex = null;
  // 通过递归函数 找到最后一个node节点的前一个节点
  const Inorder = (root) => {
    if (root.next) {
      oldIndex = root;
      Inorder(root.next);
    }
  };
  Inorder(first);
  console.log('first', first);
  // 将最后一个节点的前一个节点的 next 指向为 null  我们就完成了删除链表中最后一个节点的任务
  oldIndex.next = null;
  console.log(first);
}
